IAM ポリシーで新規 IAM ユーザーがマネジメントコンソールへアクセスするのを防ぐための対処方法

IAM ポリシーで新規 IAM ユーザーがマネジメントコンソールへアクセスするのを防ぐための対処方法

Clock Icon2021.05.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

IAM ポリシーで IAM ユーザー作成時のプログラムによるアクセス用の IAM ユーザの作成は許可するが、AWS マネジメントコンソールへのアクセス用の IAM ユーザの作成を拒否するという設定は可能でしょうか。可能な場合は方法を教えてください。

IAM コンソールでは以下の設定箇所に該当します。

どう対応すればいいの?

プログラムによるアクセスを許可し、AWS マネジメントコンソールへのアクセスを拒否する IAM ポリシーは設定可能です。

IAM コンソールのチェック項目は以下の API に該当します。

  • プログラムによるアクセス: CreateAccessKey
  • AWS マネジメントコンソールへのアクセス: CreateLoginProfile

新規作成する IAM ユーザーの AWS マネジメントコンソールへのアクセスを判定するアクションはiam:CreateLoginProfileです。このアクションを明示的に Deny としたポリシーを作成し、IAM ユーザー作成操作を行う IAM ユーザー/ロールへアタッチしてください。

ポリシー例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyIAMCreateLoginProfile",
            "Effect": "Deny",
            "Action": "iam:CreateLoginProfile",
            "Resource": "*"
        }
    ]
}

試してみた

上記の IAM ポリシー例をアタッチした IAM ユーザーで、AWS マネジメントコンソールへのアクセスを有効化した新しい IAM ユーザーを作成してみます。

IAM ユーザーは作成できますが、ログインプロファイル(マネジメントコンソールサインイン時に入力するパスワード)の作成に失敗します。つまり、マネジメントコンソールへサインインできない IAM ユーザーが作られました。

運用上の観点

コンソールにサインイン可能な IAM ユーザーの作成は禁止と運用ルールで決めるのは簡単ですが、人は操作ミスする生き物です。

IAM ポリシーであらかじめアクションを拒否しておけば、もしものときも安全です。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.